let s: 'a' | 'b' | 'c' | string = 'a' // 合并

let x: 'a' & string  // 向子类收敛的结果: let x: "a"，会朝着never方向收敛
let y: number & string // let y: never

function foo(): void {
    return undefined // undefined 能赋值给 void 类型，是因为要兼容传统的javascript
}

type T1 = number | string // type T1 = string | number
type T2 = number & string // type T2 = never
type T3 = 'abc' | string // type T3 = string
type T4 = 'abc' & string // type T4 = 'abc'
// type T5 = ... | any // any
// type T6 = ... & never // never
type T7 = void | undefined // type T7 = void | undefined
type T8 = void & undefined // type T8 = undefined
